﻿using System;
using System.Collections.Generic;
using System.Data;
using App_Code.Conexao;
using App_Code.Interface;
using App_Code.Vo;
using FluorineFx;
namespace App_Code.Retaguarda.BD
{
    [RemotingService]
    public class DoencaHereditariaBD: BdAbstrato<DoencasHereditaria>
    {
        public DoencaHereditariaBD(ConfiguradorConexao configurador): base(configurador)
        {
        }

        public override void Adicionar(DoencasHereditaria doencaHereditaria)
        {
            ComandoSql("[dbo].[ins_TBL_DoencaHereditaria]", CommandType.StoredProcedure);
            MontarParametros(doencaHereditaria);
            ExecutarComando();
        }

        public override void Atualizar(DoencasHereditaria doencaHereditaria)
        {
            ComandoSql("[dbo].[atu_TBL_DoencaHereditaria]", CommandType.StoredProcedure);
            MontarParametros(doencaHereditaria);
            ExecutarComando();
        }

        public override void Excluir(DoencasHereditaria doencaHereditaria)
        {
            throw new NotImplementedException();
        }

        public override DoencasHereditaria Consultar(DoencasHereditaria doencaHereditaria)
        {
            ComandoSql("[dbo].[cons_TBL_DoencasHereditaria]", CommandType.StoredProcedure);
            AdicionarParametroNulo("@USUARIO_CODIGO", doencaHereditaria.Usuario.Codigo);
            return MontarObjeto();
        }

        public override List<DoencasHereditaria> Listar(DoencasHereditaria doencaHereditaria)
        {
            ComandoSql("[dbo].[cons_TBL_DoencasHereditaria]", CommandType.StoredProcedure);
            AdicionarParametro("@USUARIO_CODIGO", doencaHereditaria.Usuario.Codigo);
            return MontarListagem();
        }

        protected override void PreencherObjeto(ref DoencasHereditaria doencaHereditaria, IDataReader reader)
        {
            #region Endereço Usuário

            if (reader["CODIGO"] != DBNull.Value)
            {
                doencaHereditaria.Codigo = (decimal)reader["CODIGO"];

                if (reader["USUARIO_CODIGO"] != DBNull.Value)
                {
                    var usuario = new Usuario();
                    usuario.Codigo = (decimal)reader["USUARIO_CODIGO"];
                    doencaHereditaria.Usuario = usuario;
                }
                if (reader["DESCRICAO"] != DBNull.Value)
                {
                    doencaHereditaria.Descricao = reader["DESCRICAO"].ToString();
                }
                if (reader["PARENTESCO"] != DBNull.Value)
                {
                    doencaHereditaria.Parentesco = reader["PARENTESCO"].ToString();
                }
               
            }
            #endregion
        }

        private void MontarParametros(DoencasHereditaria doencaHereditaria)
        {
            if (doencaHereditaria.Codigo > 0)
            {
                AdicionarParametro("@codigo", doencaHereditaria.Codigo); 
            }

            AdicionarParametro("@usuario_codigo", doencaHereditaria.Usuario.Codigo);
            AdicionarParametro("@descricao", doencaHereditaria.Descricao);
            AdicionarParametro("@parentesco", doencaHereditaria.Parentesco);


        }
    }
}
